/**
 * Fichier FabriqueDaoDb4o.java : Définition de classe
 * fr.unice.gnpt.core.dao.factory.FabriqueDaoDb4o : Fabrique de DAO pour DB4O
 * 
 * Auteurs : Groupe GNPT : Gastinel, Nicolas, Pellegrino, Trovato
 */
package fr.unice.gnpt.core.dao.factory;

import fr.unice.gnpt.core.dao.DaoCours;
import fr.unice.gnpt.core.dao.DaoEnseignant;
import fr.unice.gnpt.core.dao.DaoService;
import fr.unice.gnpt.core.dao.db4o.Db4oDaoCours;
import fr.unice.gnpt.core.dao.db4o.Db4oDaoEnseignant;
import fr.unice.gnpt.core.dao.db4o.Db4oDaoService;

/**
 * Classe gérant la fabrique de DAO pour DB4O.
 * 
 * @author gnpt
 * @version 0.1.2
 */
public class FabriqueDaoDb4o extends FabriqueDao {
	/**
	 * Constructeur par défaut.
	 * 
	 * Initialise la connexion à la base de données DB4O en la créant depuis le
	 * nom du fichier de base de données à utiliser passé en paramètre.
	 * 
	 */
	public FabriqueDaoDb4o() {
		super();
	}

	/**
	 * Accesseur pour obtenir un nouveau DAO de type Cours pour DB4O.
	 * 
	 * @see fr.unice.gnpt.core.dao.factory.FabriqueDao#getDaoCours()
	 * @return un nouveau DAO de type Cours pour DB4O.
	 */
	@Override
	public DaoCours getDaoCours() {
		return new Db4oDaoCours(super.getNomFichierConfiguration());
	}

	/**
	 * Accesseur pour obtenir un nouveau DAO de type Enseignant pour DB4O.
	 * 
	 * @see fr.unice.gnpt.core.dao.factory.FabriqueDao#getDaoEnseignant()
	 * @return un nouveau DAO de type Enseignant pour DB4O.
	 */
	@Override
	public DaoEnseignant getDaoEnseignant() {
		return new Db4oDaoEnseignant(super.getNomFichierConfiguration());
	}

	/**
	 * Accesseur pour obtenir un nouveau DAO de type Service pour DB4O.
	 * 
	 * @see fr.unice.gnpt.core.dao.factory.FabriqueDao#getDaoService()
	 * @return un nouveau DAO de type Service pour DB4O.
	 */
	@Override
	public DaoService getDaoService() {
		return new Db4oDaoService(super.getNomFichierConfiguration());
	}
}
